This invention generally pertains to social networking, and more specifically to facilitating and tracking the processing of a message through a workflow.
Social networks, or social utilities that track and enable connections between users (including people, businesses, and other entities), have become prevalent in recent years. In particular, social networking systems allow users to communicate information more efficiently. For example, a user may post contact information, background information, job information, hobbies, and/or other user-specific data to a location associated with the user on a social networking system. Other users can then review the posted data by browsing user profiles or searching for profiles including specific data. The social networking systems also allow users to associate themselves with other users, thus creating a web of connections among the users of the social networking system. These connections can be used by various users to communicate through the exchange of various types of messages. For example a first user may send a chat message to another user who is connected to the first user.
In order to process and deliver such messages, social networking systems typically route the messages to several different services. Such processing, however, often occurs in a decentralized manner. For example, a chat message received by a social networking system may need to be filtered for SPAM and translated into a particular language prior to being delivered to a specific destination. In processing the chat message, the social networking system may first route the message to a SPAM service. After the chat message is filtered for SPAM, the SPAM service may route the message to a translation service. After translation of the chat message, the translation service may route the message to a delivery service.
One problem with such a decentralized routing scheme is that when a service fails or improperly processes a message, the message may be inadvertently lost or dropped. Referring again to the previous example, if the SPAM service improperly processes the chat message, the message may never be sent to the translation service or the delivery service. As a result, the message may never be delivered. As a consequence of the outlined problem, current social networking systems are unable to reliably process and deliver messages.